The states of the controller are as follows:

1. Stopped mode.

2. Run mode.

3. Jog mode.

4. Set variable mode. Sets variables such as as Latitude, Longitude, Start Angle, End Angle....

 

Run Mode has further possibilities as follows:

1. After hours. This is the time interval between when the array is parked for the night and when the controller light sensor wakes up, to sense dawn.

2. Sense dawn . A light sensor is enabled, to check for first daylight. When this occurs, the microcontroller clock is set, with the value corresponding to a calculated dawn minute. The latter is based upon the day of the year and latitude only. After dawn is sensed, and the time is set, the controller reverts to after hours operation.

3. Array movement to a start angle occurs. At a user selectable interval after sunrise, the array rotates to an angle called Start Angle. This is the maximum rotation angle before the structure hits the ground.

4. Wait until the sun zenith angle <= start angle.

5. Tracking begins. At this moment, the elevation of the sun has reached the angle of the panels. That is, the suns rays are normal to the panels. Panel movement occurs each minute to track the sun.

6. Array movement stops when the array gets to a point defined by a variable called EndAngle.

7. The array position is held until the time reaches a user selected value before sundown.

8. The array returns to a parked position, usually horizontal. It remains in this position overnight.